# -*- coding: utf-8 -*-

# Bliotecas padrões
from django.db import models
from django.forms import ModelForm
from django.contrib.auth.models import Permission
from django.utils.translation import ugettext as _

# Bibliotecas externas

# Bibliotecas das apps
from choices import *
from thumbs import *

# Models

class Curso(models.Model):
  
    nome = models.CharField(max_length=255)
    cargaHoraria = models.IntegerField(verbose_name=u'Carga horária', blank=True)
      
    class Meta:
        ordering = ['-id']

    def __unicode__ (self):
        return self.nome
    
    def save(self, **kwargs):
        if self.id:
            super(Curso, self).save(**kwargs)        
        else:
            super(Curso, self).save(**kwargs)
            aula = Aula(curso=self,nome=self.nome+u' Curso padrão')
            aula.save()

    class Meta:
      verbose_name = u'Cadastro de curso'
      verbose_name_plural = u'Cadastro de cursos'
      ordering = ['nome']

class Aula(models.Model):
  
    nome = models.CharField(max_length=255)
    curso = models.ForeignKey(Curso)
      
    class Meta:
        ordering = ['-id']

    def __unicode__ (self):
        return self.nome

    class Meta:
      verbose_name = u'Cadastro de aula'
      verbose_name_plural = u'Cadastro de aulas'
      ordering = ['nome']
      
class ArquivoAula(models.Model):
  
    aula = models.ForeignKey(Aula)
    arquivo = models.FileField(verbose_name='Arquivo', upload_to='arquivos/ArquivoAula/')
    
    class Meta:
        ordering = ['-id']
        verbose_name = u'Cadastro de aula'
        verbose_name_plural = u'Cadastro de aulas'
    
    def get_absolute_url(self):
        return self.arquivo        
    
    def get_exibicao(self):
        nome_arq = ""
        nome_arqAux = str(self.arquivo)
        total = len(nome_arqAux)
        lTem = True
        while lTem:
            if nome_arqAux[total-1:total] != '/':
                nome_arq += nome_arqAux[total-1:total]
                total -= 1
            else:
                lTem = False
        nome_arq = nome_arq[::-1]
        return nome_arq

class ImagemAula(models.Model):
  
    aula = models.ForeignKey(Aula)
    imagem = ImageWithThumbsField(
        null = True,
        blank = True, 
        upload_to = 'arquivos/ImagemAula/',
        sizes=((125,125),(200,200),(900,600))
    )
    
    class Meta:
        ordering = ['-id']
        verbose_name = u'Cadastro de imagem'
        verbose_name_plural = u'Cadastro de imagens'
    
    def get_absolute_url(self):
        #return reverse('album', kwargs={'slug': self.slug})
        return self.imagem        
    
    def get_exibicao(self):
        nome_arq = str(self.imagem)
        delimiter = nome_arq.find(".JPG")
        delimiter += -3
        nome_arq = nome_arq[:delimiter] + ".900x600.jpg"
        print nome_arq 
        return nome_arq
    
    def get_thumbnail(self):
        nome_arq = str(self.imagem)
        delimiter = nome_arq.find(".JPG")
        delimiter += -3
        nome_arq = nome_arq[:delimiter] + ".125x125.jpg"
        return nome_arq

class VideoAula(models.Model):
    aula = models.ForeignKey(Aula)
    video = models.FileField(upload_to='arquivos/VideoAula/')

    def get_absolute_url(self):
        return self.video        
    
    def get_exibicao(self):
        nome_arq = ""
        nome_arqAux = str(self.video)
        total = len(nome_arqAux)
        lTem = True
        while lTem:
            if nome_arqAux[total-1:total] != '/':
                nome_arq += nome_arqAux[total-1:total]
                total -= 1
            else:
                lTem = False
        nome_arq = nome_arq[::-1]
        return nome_arq